As one example of a container-based data processing system, Docker™ is an open platform for developing, shipping, and running applications. (Docker and other Docker-based marks discussed herein are trademarks or registered trademarks of Docker, Inc., of San Francisco, Calif., USA.) At their core, such systems provide a way to run almost any application securely isolated in a container. A container may consist of an application, user-added files, and metadata for an application. Each container is built from an image, which may specify what the container holds, what process to run when the container is launched, and a variety of other configuration data. The image is a read-only template from which the container is launched. The image may consist of a series of layers and be built from one or more base images.
An image can be built from one or more base images using a set of instructions, each of which creates a new layer in the image. According to current design, when a container runs from an existing image, the version of base image used by the container cannot be changed. This restriction could cause issues due to one or more base images becoming out of date, potentially negatively affecting operation of the container.